﻿#define  _CRT_SECURE_NO_WARNINGS

//从键盘输入一个整数，定义一个宏函数，输出该整数的平方。
//#include <stdio.h>
//#define M(x) x*x
//int main()
//{
//	int a = 3;
//	printf("%d\n", M(a));
//	return 0;
//}

//输入两个整数，求他们相除的余数。请使用宏替换来实现，编程序

//#include <stdio.h>
//#define M(a,b) a%b
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	printf("%d\n", M(a, b));
//	return 0;
//}

//输入一个不大于1000的正整数n，输出从1加到n的和。
//输入输出格式
//输入格式
//第一行一个正整数n。
//输出格式
//第二行输出1到n的和

//#include <stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	int sum = 0;
//	for (i = 1; i <= n; i++)
//	{
//		sum += i;
//	}
//	printf("%d\n", sum);
//	return 0;
//}

//#include<stdio.h>
//int num(int n)
//{
//	return 365 * n;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = num(n);
//	printf("%d\n", ret);
//	return 0;
//}

//根据输入的底面积和高，计算三棱锥体积。
//输入数据有多组，每组占一行，每行包括2个实数s, h，表示三棱锥的底面积和高。计算结果保留三位小数。

//#include <stdio.h>
//int main()
//{
//	float s, h;
//	while (scanf("%f%f", &s, &h) != EOF)
//	{
//		printf("%.3f\n", s * h / 3);
//	}
//	return 0;
//}

//多项式求值
//#include<stdio.h>
//double fun(double x, int n) {
//    double f, t=1, j;
//    int i;
//    f = 1.0;
//    for (i = 1; i <= n; i++)
//    {
//        double s = 1;
//        for (j = 1; j <= i; j++)
//        {
//            s *= x;
//        }
//        double r = 1;
//        for (j = 1; j <= i; j++)
//        {
//            r *= j;
//        }
//        t = s / r;
//        f += t;
//    }
//    return f;
//}
//void main() {
//    double x, y;
//    scanf("%lf", &x);
//    y = fun(x, 12);
//    printf("%-12.6f", y);
//}


//题目描述
//小明的班级要进行学期总评了，班主任交给小明一个任务，到文具店里买尽量多的签字笔。
//已知一只签字笔的价格是 1 元 9 角，而班主任给小明的钱是 a 元 b 角，小明想知道，他最多能买多少只签字笔呢。

//#include <stdio.h>
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	int sum = a * 10 + b;
//	printf("%d\n", sum / 19);
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int a, b, flag;
//	scanf("%d%d", &a, &b);	
//	if (a >= 10)
//	{
//		flag = 1;
//	}
//	if (a >= 20)
//	{
//		flag = 1;
//	}
//	printf("%d\n", flag);
//	return 0;
//}


//题目描述
//Excel 单元格的地址表示很有趣，它使用字母来表示列号：
//A 表示第 1 列，
//B 表示第 2 列，
//Z 表示第 26 列，
//AA 表示第 27 列，
//AB 表示第 28 列，
//BA 表示第 53 列，
//⋯
//⋯
//当然 Excel 的最大列号是有限度的，所以转换起来不难。
//如果我们想把这种表示法一般化，可以把很大的数字转换为很长的字母序列呢？
//本题目即是要求对输入的数字, 输出其对应的 Excel 地址表示方式。
//输入一个整数:n，其范围[1, 2147483647]。
//输出:n 对应的 Excel 地址表示方式。

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	char arr[10];
	int i = 0;
	while (n > 0)
	{
		n--;
		arr[i] = 'A' + (n % 26);
		n /= 26;
		i++;
	}
	for (i=i-1; i >= 0; i--)
	{
		printf("%c", arr[i]);
	}
	return 0;
} 



